package com.zys.el.time.ga;


import java.util.List;

/**
 * 不同种群的集合
 */
public class SchedulePopulation {
    // 种群的变异概率
    public double mutProb = 0.4;
    // 种群交叉概率
    public double crossProb = 0.3;
    // 种群产生新物种的概率
    public double newScheduleProb = 0.1;
    // 事件长度改变概率
    public double timeLenChangeProb = 0.5;
    // 事件变长概率
    public double longerChangeProb = 0.5;
    // 事件移动概率
    public double timeMoveProb = 0.5;
    // 硬性要求被淘汰概率
    public double hardnessProb = 0.5;

    // 初始饱和度
    public double originFullness = 0D;
    // 种群的规模（0-100）
    public int popSize = 32;
    // 精英种群的个数
    public int elite = 10;
    // 进化代数（100-500）
    public int maxIter = 400;
    // 原始总群
    public List<Schedule> originPop;
    // 种群集
    public List<List<Schedule>> population;

    // 时间片总数
    public int scheduleNum = 131;
    // 待安排任务数
//    public int taskNum = 10;
    // 时间片时长
    public int timeInterval = 5;


    // 是否需要排满所有任务
    public final boolean isArrangeFull = false;

    // 休息时间(单位：时间片数量)
    public final int restTime = 2;

}
